import { getStorage } from '@/utils/auth'

import store from '@/store'
import { useCommonStore } from '@/store/modules/common'
import { useUserStore } from '@/store/modules/user'
const commonStore = useCommonStore(store)
const userStore = useUserStore(store) // 这里一定要把 pinia传入进去
const whiteList = ['/pages/user/index']

const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab']

function hasPermission(url) {
  // 在白名单中或有token，直接跳转
  if (whiteList.indexOf(url) !== -1 || getStorage('Admin-Token')) {
    return true
  }
  return false
}
// getStore()
async function getStore() {
  if (!Object.keys(commonStore.switch).length && getStorage('Admin-Token')) {
    await userStore.getInfo()
  }
}
commonStore.getCustomBar()
list.forEach((item) => {
  uni.addInterceptor(item, {
    // 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
    invoke(e) {
      if (!hasPermission(e.url)) {
        // 将用户的目标路径保存下来
        // 这样可以实现 用户登录之后，直接跳转到目标页面
        uni.setStorageSync('URL', e.url)
        uni.$u.toast('请先登录')
        uni.$u.route({
          url: '/pages/user/index',
        })

        return false
      }
      return true
    },
  })
})
